package paysetting

type WxStewardCancelOrder struct {
	TransactionId   string `json:"transactionId"`
	TradeNo         string `json:"tradeNo"`
	Appid           string `json:"appid"`
	RefundNotifyUrl string `json:"refundNotifyUrl"`
	Amount          int64  `json:"amount"`

	Reason  string `json:"reason"`
	PathKey string
}

type PaySetting struct {
	Id        int    `gorm:"column:id" json:"id"`                // 主键
	AppId     string `gorm:"column:app_id" json:"appId"`         // 小程序appid
	AppSecret string `gorm:"column:app_secret" json:"appSecret"` // 小程序appsecret
	MchId     string `gorm:"column:mch_id" json:"mchId"`         // 商户id
	ApiKey    string `gorm:"column:api_key" json:"apiKey"`       // 商户支付 api key
	ApiKeyV3  string `gorm:"column:api_key_v3" json:"apiKeyV3"`  // 商户支付 api key v3
	ServerId  string `gorm:"column:server_id" json:"serverId"`   // server_id
	SerialNo  string `gorm:"column:serial_no" json:"serialNo"`   // 支付证书序列号
	Status    int    `gorm:"column:status" json:"status"`        // 优惠券状态：未开始 1，启用 2 ，禁用

	DepositNotifyUrl string `gorm:"column:deposit_notify_url" json:"depositNotifyUrl"` // 支付成功通知url
	DepositNotifyUrlV3 string `gorm:"column:deposit_notify_urlv3" json:"depositNotifyUrlV3"` // 支付成功通知url
	ScoreNotifyUrl   string `gorm:"column:score_notify_url" json:"scoreNotifyUrl"`     // 支付分创建成功通知
	RefundNotifyUrl  string `gorm:"column:refund_notify_url" json:"refundNotifyUrl"`   // 退款通知url
	RefundNotifyUrlCash  string `gorm:"column:refund_notify_url_cash" json:"refundNotifyUrlCash"`   // 退款通知url
	CertsPath        string `gorm:"column:certs_path" json:"certsPath"`                // 支付证书Cert路径
	ApiclientKeyPath string `gorm:"column:apiclient_key_path" json:"apiclientKeyPath"` // 支付证书Key路径

	TypeName string `gorm:"column:type_name" json:"typeName"` // 小程序支付唯一标识
}

// model init
func New() *PaySetting {
	return &PaySetting{}
}

// TableName
func (m *PaySetting) TableName() string {
	return "pay_setting"
}

func (m *PaySetting) Mutate(attrs ...WithdrawalLogAttr) *PaySetting {
	WithdrawalLogAttrs(attrs).Apply(m)
	return m
}
